Apps API Calls

All api operations in this chapter apply to the default space only.

Search for Google Play Apps

This call searches for Google Play apps as part of the add app process.

Authentication

This call requires Tenant admin credentials.

HTTP Method

GET

Request URI

api/v1/app/googleplay

Request Parameters

Parameter

Argument Type

Description

Example Value

cmPartitionId

Path

The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call.

23000

q

Path

What to find.

outlook

rows

Path

How many rows to return

Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results.

100

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/googleplay?cmPartitionId=20003&q=outlook&rows=100

Response Fields

Field

Description

    name

Name of retrieved app.

    platformAppId

ID of app on target platform.

    iconUrl

URL to the icon.

    imported

 

    currency

 

    cost

Cost of the app.

    shortDescription

Short description of the app.

    category

Category of the app.

    categoryDisplay

 

Example Response

{

   "errors":null,

   "result":[

      {

         "name":"Outlook.com",

         "platformAppId":"com.outlook.Z7",

         "iconUrl":"https://lh6.ggpht.com/qb3BZINk7-uaYQ3RsdMk3sVDfWVCSRDIiIGnJRq-UTuyZlyv5k_9-imprqUPBBZ6xkEg=w170",

         "imported":false,

         "currency":null,

         "cost":0.0,

         "shortDescription":"The Official Microsoft Outlook.com app gives you the best mobile experience for your Outlook.com account.Sign in using your existing Microsoft account, which is usually your Outlook.com email address and password. With the Outlook.com app, you can:- Get emails right away with push notifications - Sync Outlook.com Calendar and Contacts with your device- View and sync folders and sub-folders- Choose from 8 different color themes to personalize your experience.- Group your email conversations with Conversation Threading- Utilize server-side search for easy finding through all your history of emails. - Sync multiple Outlook.com accounts and send email from aliases \tTips and tricks- Change the color theme on the app settings menu by selecting General, and then Theme color.- Filter your emails (all, unread or flagged) by selecting Inbox in the top menu.- Switch accounts or access your folders and sub-folders by selecting the top left menu. - Choose which folders automatically sync from the app settings menu by selecting Sync, Folders, and then the folders you want to sync.",

         "category":null,

         "categoryDisplay":null

      },

     …

   ]

}

Get Google Play App Info by Bundle ID

This call gets Google Play app info by Bundle ID.

Authentication

This call requires Tenant admin credentials.

HTTP Method

GET

Request URI

api/v1/app/googleplay/appBundleID   

Request Parameters

Parameter

Argument Type

Description

Example Value

cmPartitionId

Path

The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call.

23000

appBundleID

Path

The app bundle ID

outlook

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/googleplay/com.outlook.Z7?cmPartitionId=20003

Response Fields

Field

Description

errors

 

result

 

  id

 

  createdAt

 

  createdBy

 

  modifiedAt

 

  modifiedBy

 

  platformAppId

 

  platformType

 

  appType

 

  appStoreId

 

  cmPartitionId

 

  itComments

 

  developerName

 

  enableRatings

 

  enableReviews

 

  categories

 

      id

 

      name

 

  defaultManagementFlag

 

  vppLicenseStatus

 

    statusType

 

    available

 

    associated

 

    totalLicenseCount

 

  name

 

  iconUrl

 

  versions

 

      name

 

      featuredStatus

 

      primaryVersion

 

      secondaryVersion

 

      displayVersion

 

      minOsVersion

 

      applicationVersionId

 

      size

 

      distributionCount

 

      iconUrl

 

      description

 

      whatsNew

 

      currency

 

      cost

 

      deviceFamily

 

      phoneScreenshotUrls

 

          key

 

          url

 

          orientation

 

          height

 

          width

 

          key

 

          url

 

          orientation

 

          height

 

          width

 

          key

 

          url

 

          orientation

 

          height

 

          width

 

          key

 

          url

 

          orientation

 

          height

 

          width

 

          key

 

          url

 

          orientation

 

          height

 

          width

 

      padScreenshotUrls

 

      iosSupportedDevices

 

      iosUniversal

 

      avgRating

 

      bannerSettings

 

 

Example Response

{

  "errors": null,

  "result": {

    "id": null,

    "createdAt": null,

    "createdBy": null,

    "modifiedAt": null,

    "modifiedBy": null,

    "platformAppId": "com.outlook.Z7",

    "platformType": "ANDROID",

    "appType": "PUBLIC",

    "appStoreId": null,

    "cmPartitionId": 0,

    "itComments": null,

    "developerName": null,

    "enableRatings": true,

    "enableReviews": true,

    "categories": [

      {

        "id": null,

        "name": "Communication"

      }

    ],

    "defaultManagementFlag": "REMOVE_APP_WITH_MDM_REMOVAL",

    "vppLicenseStatus": {

      "statusType": "NONE",

      "available": 0,

      "associated": 0,

      "totalLicenseCount": 0

    },

    "name": "Outlook.com",

    "iconUrl": "https://lh6.ggpht.com/qb3BZINk7-uaYQ3RsdMk3sVDfWVCSRDIiIGnJRq-UTuyZlyv5k_9-imprqUPBBZ6xkEg=w300",

    "versions": [

      {

        "name": "Outlook.com",

        "featuredStatus": "NONE",

        "primaryVersion": null,

        "secondaryVersion": null,

        "displayVersion": "7.8.2.12.49.2176",

        "minOsVersion": "7.7.2.11.49.2176",

        "applicationVersionId": 0,

        "size": 7235174,

        "distributionCount": null,

        "iconUrl": "https://lh6.ggpht.com/qb3BZINk7-uaYQ3RsdMk3sVDfWVCSRDIiIGnJRq-UTuyZlyv5k_9-imprqUPBBZ6xkEg=w300",

        "description": "The Official Microsoft Outlook.com app gives you the best mobile experience for your Outlook.com account.<br>Sign in using your existing Microsoft account, which is usually your Outlook.com email address and password. <p>With the Outlook.com app, you can:</p>

<p>- Get emails right away with push notifications <br>- Sync Outlook.com Calendar and Contacts with your device<br>- View and sync folders and sub-folders<br>- Choose from 8 different color themes to personalize your experience.<br>- Group your email conversations with Conversation Threading<br>- Utilize server-side search for easy finding through all your history of emails. <br>- Sync multiple Outlook.com accounts and send email from aliases   </p>

<p>Tips and tricks</p>

<p>- Change the color theme on the app settings menu by selecting General, and then Theme color.<br>- Filter your emails (all, unread or flagged) by selecting Inbox in the top menu.<br>- Switch accounts or access your folders and sub-folders by selecting the top left menu. <br>- Choose which folders automatically sync from the app settings menu by selecting Sync, Folders, and then the folders you want to sync.</p>",

        "whatsNew": "New in this version:-   Server-side search for easy access to all email, not just the ones synced to your phone- Unlimited sync of all email history for full off-line access- Capability to send emails from Outlook.com aliases-     Eight new colors to customize the app interface-   Ability to set and manage vacation replies-     Traditional Chinese language support",

        "currency": null,

        "cost": 0,

        "deviceFamily": null,

        "phoneScreenshotUrls": [

          {

            "key": null,

            "url": "https://lh6.ggpht.com/63hoSU27LSmMmTCjU0sYpljb3wm0ShWMEfL1iumDwuGBwHR-axYkJ3RxHqZ8Xl9D0FE=h900",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "https://lh5.ggpht.com/EkXogB3c5m1fBkosb9Ti_Ko5W0wn5J-9T_t5kTOgN5Dc6lYSITLDzRnriWri3CuCeg=h900",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "https://lh4.ggpht.com/w96J8ej5Y6sfm0ZM3YjvUFSA2WuyAOFLlXaoqnRgT5_rPEdHP0UAt-jI_ZTT0iEPS6c=h900",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "https://lh3.ggpht.com/TEQFw0NslkgKytfUt_xpPDRsvMi32O6lzr_3SzLpK7ZCB8wEhGG-yz5-SmQX7aD3yZU=h900",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "https://lh4.ggpht.com/Ny3_B-UKmS_-wpAvzC7vQP0e4DN8Rj5zDQbEKvhFTfOdr1jaV2CJo3NbbtYY4s_ZDLE=h900",

            "orientation": null,

            "height": 0,

            "width": 0

          }

        ],

        "padScreenshotUrls": null,

        "iosSupportedDevices": null,

        "iosUniversal": false,

        "avgRating": null,

        "bannerSettings": null

      }

    ]

  }

}

Search for iTunes Apps

This call searches for iTunes apps as part of the add app process.

Authentication

This call requires Tenant admin credentials.

HTTP Method

GET

Request URI

api/v2/app/itunes

Request Parameters

Parameter

Argument Type

Description

Example Value

cmPartitionId

Path

The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call.

20000

countryCode

Path

The country code of the target iTunes app store.

US

q

Path

What to find.

outlook

rows

Path

How many rows to return.

Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results.

100

Example Request

https://[Ivanti Neurons for MDM]/api/v2/app/itunes?q=outlook&cmPartitionId=20000&countryCode=US

Response Fields

Field

Description

errors

 

result

 

      name

 

      developerName

 

      version

 

      size

 

      appStoreId

 

      iconUrl

 

      universal

 

      imported

 

      bundleId

 

      deviceFamily

 

Example Response

{

    "errors": null,

    "result": [

        {

            "name": "Outlook",

            "developerName": "Magzter Inc.",

            "version": "6.10",

            "size": 20834304,

            "appStoreId": 486362804,

            "iconUrl": "http://is5.mzstatic.com/image/thumb/Purple111/v4/61/42/26/614226e3-aa0b-105d-6e0c-ea1fd8e99b3f/mzl.tlzgvxkf.png/0x0ss-85.jpg",

            "universal": true,

            "imported": false,

            "bundleId": "com.dci.outlook",

            "deviceFamily": "ALL"

        },

    ]

}

Get iTunes App Info by appStoreId

This call gets iTunes app info by appStoreId.

Authentication

This call requires Tenant admin credentials.

HTTP Method

GET

Request URI

api/v1/app/itunes/appStoreId  

Request Parameters

Parameter

Argument Type

Description

Example Value

cmPartitionId

Path

The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call.

23000

appStoreId

 

The app bundle ID

outlook

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/itunes/428974099?cmPartitionId=20003

Response Fields

Field

Description

errors

 

result

 

  id

 

  createdAt

 

  createdBy

 

  modifiedAt

 

  modifiedBy

 

  platformAppId

 

  platformType

 

  appType

 

  appStoreId

 

  cmPartitionId

 

  itComments

 

  developerName

 

  enableRatings

 

  enableReviews

 

  categories

 

      id

 

      name

 

      id

 

      name

 

  defaultManagementFlag

 

  vppLicenseStatus

 

    statusType

 

    available

 

    associated

 

    totalLicenseCount

 

  name

 

  iconUrl

 

  versions

 

      name

 

      featuredStatus

 

      primaryVersion

 

      secondaryVersion

 

      displayVersion

Note: As of Ivanti Neurons for MDM 70, the displayVersion value matches the secondaryVersion value for iOS apps.

      minOsVersion

 

      applicationVersionId

 

      size

 

      distributionCount

 

      iconUrl

 

      description

 

      whatsNew

 

      currency

 

      cost

 

      deviceFamily

 

      phoneScreenshotUrls

 

          key

 

          url

 

          orientation

 

          height

 

          width

 

      padScreenshotUrls

 

          key

 

          url

 

          orientation

 

          height

 

          width

 

      iosSupportedDevices

 

        iPadThirdGen

 

        iPadFourthGen

 

        iPadMini

 

        iPadFourthGen4G

 

        iPhone4S

 

        iPodTouchFifthGen

 

        iPadMini4G

 

        iPhone5

 

        iPad23G

 

        iPhone5c

 

        iPadThirdGen4G

 

        iPad2Wifi

 

        iPodTouchourthGen

 

        iPhone-3GS

 

        iPhone4

 

        iPhone5s

 

      iosUniversal

 

      avgRating

 

      bannerSettings

 

 Example Response

{

  "errors": null,

  "result": {

    "id": null,

    "createdAt": null,

    "createdBy": null,

    "modifiedAt": null,

    "modifiedBy": null,

    "platformAppId": "com.mspecht.OWA",

    "platformType": "IOS",

    "appType": "PUBLIC",

    "appStoreId": 428974099,

    "cmPartitionId": 0,

    "itComments": null,

    "developerName": "iKonic Apps LLC",

    "enableRatings": true,

    "enableReviews": true,

    "categories": [

      {

        "id": 15649,

        "name": "Utilities"

      },

      {

        "id": 15049,

        "name": "Business"

      }

    ],

    "defaultManagementFlag": "REMOVE_APP_WITH_MDM_REMOVAL",

    "vppLicenseStatus": {

      "statusType": "NONE",

      "available": 0,

      "associated": 0,

      "totalLicenseCount": 0

    },

    "name": "Mail+ for Outlook",

    "iconUrl": "http://a1573.phobos.apple.com/us/r30/Purple6/v4/17/05/54/1705547c-2fda-705b-ead9-c94c8e0af0b6/Icon.png",

    "versions": [

      {

        "name": "Mail+ for Outlook",

        "featuredStatus": "NONE",

        "primaryVersion": null,

        "secondaryVersion": null,

        "displayVersion": "3.4.5",
        "minOsVersion": "2.3.5",

        "applicationVersionId": 0,

        "size": 26500184,

        "distributionCount": null,

        "iconUrl": "http://a1573.phobos.apple.com/us/r30/Purple6/v4/17/05/54/1705547c-2fda-705b-ead9-c94c8e0af0b6/Icon.png",

        "description": "########################################

- Securely access Outlook Email and Calendar

- TOP 5 business apps for last 12 months

- #1 Outlook/Exchange Email App

########################################

 

Read and compose Outlook emails and manage your calendar directly from any iOS device. No more using the web browser to access your Outlook account!

 

MULTIPLE ACCOUNTS now included. Access multiple mailboxes and calendars. Great for quickly combining all of your email addresses.

     (Exchange 2013, 2010, 2007, 2003

     Office 365 business, Gmail, Outlook.com, Yahoo, AOL, and more)

 

-Read and reply to all Outlook email (includes subfolders)

-Open and forward attachments

-Compatible with PDF, XLS, DOC, JPG files

 

- Rich HTML Text Editing

- Out of Office

- Scheduling Assistant

 

-View, create calendar events (and reminders)

-Search Exchange Global Address Book

-Access contact details (name, tile, phone)

 

-Landscape mode (great for iPad)

-User-friendly design with easy navigation

-Excellent customer support

 

-Signature feature available

-Passcode protection for extra security

-Secure login

 

-Works on iPhone, iPad over 3G or WiFi

-Connect to Microsoft Exchange 2003, 2007, 2010

-Compatible with Microsoft Office 365, Gmail, Outlook.com, Yahoo, AOL

 

 

Connect with us!

http://www.mailplusapp.com

http://www.twitter.com/mailplusapp

http://www.mailplusapp.com/news

http://www.facebook.com/mailplusapp

 

Outlook is a registered trademark of Microsoft Corporation. This application has been developed by a third party developer and is not endorsed, tested, or associated with Microsoft Corporation.",

        "whatsNew": null,

        "currency": "USD",

        "cost": 5.99,

        "deviceFamily": "ALL",

        "phoneScreenshotUrls": [

          {

            "key": null,

            "url": "http://a3.mzstatic.com/us/r30/Purple/v4/3c/2c/0c/3c2c0c56-8d74-18af-2069-a94dfdd6c4ab/screen1136x1136.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a1.mzstatic.com/us/r30/Purple4/v4/0c/73/50/0c735004-78ac-2beb-8f3e-c4aa6afc22df/screen1136x1136.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a5.mzstatic.com/us/r30/Purple/v4/e6/a5/a0/e6a5a041-a3f7-9b0f-8df4-1d61c1040782/screen1136x1136.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a3.mzstatic.com/us/r30/Purple6/v4/3c/1c/ea/3c1ceae0-9f0f-1a63-4bdc-e9bdc300abb7/screen1136x1136.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a2.mzstatic.com/us/r30/Purple6/v4/b7/a3/7f/b7a37f8e-cad0-dcd0-e0d3-6df20c7dcb78/screen1136x1136.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          }

        ],

        "padScreenshotUrls": [

          {

            "key": null,

            "url": "http://a2.mzstatic.com/us/r30/Purple6/v4/49/33/94/493394aa-0708-a008-09a1-5abc7542281f/screen480x480.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a3.mzstatic.com/us/r30/Purple6/v4/f4/73/62/f47362a3-9c79-2580-006a-aafec996b45b/screen480x480.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a1.mzstatic.com/us/r30/Purple/v4/6d/6c/c5/6d6cc5f2-2af7-46c4-0889-62d6ae62b42c/screen480x480.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a3.mzstatic.com/us/r30/Purple6/v4/73/8c/68/738c6894-5a25-02ed-938c-0b800582223c/screen480x480.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          },

          {

            "key": null,

            "url": "http://a1.mzstatic.com/us/r30/Purple4/v4/8d/51/2f/8d512f30-147d-0d38-b785-d4ae8c9d86a1/screen480x480.jpeg",

            "orientation": null,

            "height": 0,

            "width": 0

          }

        ],

        "iosSupportedDevices": [

          "iPadThirdGen",

          "iPadFourthGen",

          "iPadMini",

          "iPadFourthGen4G",

          "iPhone4S",

          "iPodTouchFifthGen",

          "iPadMini4G",

          "iPhone5",

          "iPad23G",

          "iPhone5c",

          "iPadThirdGen4G",

          "iPad2Wifi",

          "iPodTouchourthGen",

          "iPhone-3GS",

          "iPhone4",

          "iPhone5s"

        ],

        "iosUniversal": true,

        "avgRating": null,

        "bannerSettings": null

      }

    ]

  }

}

Get Application Inventory for a Particular Device

This call gets a list of all applications installed on a particular device.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

/api/v1/app/inventory?q=&rows=rows&start=start&dmPartitionId= dmPartitionId &deviceId=  deviceId&facetFq=+INSTALLTYPE+!%3D+%27SYSTEM_APP%27+AND+ INSTALLTYPE+!%3D+%27UPDATED_SYSTEM_APP%27+&sortFields%5B0%5D.name=name

Request Parameters

Parameter

Argument Type

Description

Example Value

rows

Query string

 How many rows to return per page.

Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results.

20

start

Query string

 Where in the return set to start displaying values.

0

dmPartitionId

Query string

 The device space ID.

23003

deviceId

Query string

 The device ID.

126632

facetFq

Query string

 The search string. The value is:

URL Encoded:

+INSTALLTYPE+!"%"3D+"%"27SYSTEM_APP" %"27+AND+INSTALLTYPE+!"%"3D+"%"27 UPDATED_SYSTEM_APP"%"27+&sortFields"%" 5B0"%"5D.name=name&sortFields"%"5B0"%"5D.order=ASC

URL Unencoded:

INSTALLTYPE !"%"3D "%"27SYSTEM_APP"%"27 AND INSTALLTYPE !"%"3D "%"27UPDATED_SYSTEM_APP"%"27 &sortFields"%"5B0"%"5D.name=name&sortFields"%"5B0"%"5D.order=ASC

 

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/inventory?q=&rows=20&start=0&dmPartitionId=67730&deviceId=87178&1f7a8cetFq=+INSTALLTYPE+!"%"3D+"%"27SYSTEM_APP"%"27+AND+INSTALLTYPE+!"%"3D+"%"27UPDATED_SYSTEM_APP"%"27+&sortFields"%"5B0"%"5D.name=name&sortFields"%"5B0"%"5D.order=ASC

Response Fields

Field

Description

errors

Describes whether there was an error

result

Container for the results.  

   searchResults

Container for search results

            deviceId

The device ID

            mdmChannelId

 

           name

Name of the app

           identifier

App identifier

           version

App version

           displayVersion

Vesion as displayed

           bundleSize

13631488

           appType

Kind of app this is. Can be public or in-house.

           platformType

Platform type. Can be android or IOS.

           appConnectConfigState

 

           appConnectConfigStateMessage

 

           appStoreId

 

           iconUrl

URL to the app icon

           licenseId

 

           licenseStatus

 

           assignedAt

 

           revokedAt

 

           accountId

 

          distributionType

 

          vulnerable

 

          reputationEnabled

 

          winSupportedArchitectures

 

          appVersionId

 

          managed

true or false. Indicates whether the app is managed.

          installedAt

The installation date of the current application version when the app has been installed and was discovered as a new app in an inventory checkin report. The value for iOS MAM Only apps is the time that the app was requested to be installed or requested to be updated. In cases where the privacy policy changed from the Ivanti app store only to all apps on the device, the value is the date when the privacy policy changed to allow viewing of the non-MobleIron store apps.

          threatScore

 

          exclusion

 

totalCount

How many applications are installed

offset

How many records to skip when displaying

limit

How many records to get

Example Response

{
    "errors": null, 
    "result": {
        "searchResults": [
            {
                "deviceId": 87178, 
                "mdmChannelId": "147e5d5c-1734-47b1-8ae9-53b49b96c7cd", 
                "name": "_-_", 
                "identifier": "com.sm.keyslide", 
                "version": "2", 
                "displayVersion": "1.2", 
                "bundleSize": 67112960, 
                "appType": "PUBLIC", 
                "platformType": "IOS", 
                "appConnectConfigState": null, 
                "appConnectConfigStateMessage": null, 
                "appStoreId": "1315674869", 
                "iconUrl": "https://is1-ssl.mzstatic.com/image/thumb/Purple118/v4/16/f7/1e/16f71e3c-cad7-8c85-3ca4-68d7e4fc6eca/source/60x60bb.jpg", 
                "bgColor": null, 
                "androidAppInstallLocation": "UNKNOWN", 
                "licenseId": 0, 
                "licenseStatus": null, 
                "vppProfileId": 0, 
                "vppProfileName": null, 
                "assignedAt": null, 
                "revokedAt": null, 
                "accountId": 0, 
                "distributionType": null, 
                "vulnerable": false, 
                "reputationEnabled": false, 
                "winSupportedArchitectures": null, 
                "appVersionId": 0,
		 "managed": false, 
                "installedAt": null, 
                "threatScore": 0, 
                "exclusion": false
            }, 
           ...
        ], 
        "totalCount": 12, 
        "offset": 0, 
        "limit": 20
    }
}

Get the List of Applications Available to a Particular User

This call produces a list of all applications available to a specific user.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

/api/v1/app/user/accountId

Request Parameters

Parameter

Argument Type

Description

Example Value

accountId

Path

 Account ID.

10009

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/user/10009

Response Fields

Field

Description

errors

 

result

 

    totalCount

 

    queryTime

 

    searchResults

 

            applicationVersionId

 

            platformType

 

            bundleId

 

            name

 

            whatsNew

 

            displayVersion

 

            iconUrl

 

            iconDataUri

 

            appStoreId

 

            appDetailUrl

 

            categories

 

                Productivity

 

                Business

 

            appType

 

            deviceFamily

 

            iosUniversal

 

            featuredStatus

 

            free

 

            installed

 

            updateAvailable

 

            cost

 

            currency

 

            size

 

            description

 

            installUrl

 

            managedAppInstall

 

            vppState

 

            vppInvitationUrl

 

            createdAt

 

            modifiedAt

 

            developerName

 

            averageRating

 

            ratingCount

 

            reinstallAsManaged

 

            reviewDetailUrl

 

            reviewListUrl

 

            phoneScreenshotUrls

 

                    cdnGuid

 

                    url

 

                    orientation

 

                    height

 

                    width

 

            tabletScreenshotUrls

 

                    cdnGuid

 

                    url

 

                    orientation

 

                    height

 

                    width

 

            firstReview

 

    offset

 

Example Response

{

    "errors": null,

    "result": {

        "totalCount": 20,

        "queryTime": 0,

        "searchResults": [

            {

                "applicationVersionId": 18437,

                "platformType": "IOS",

                "bundleId": "com.adobe.Adobe-Reader",

                "name": "Adobe Reader",

                "whatsNew": "- iPhone 6, iPhone 6 Plus, and iOS 8 support",

                "displayVersion": "11.6.3",

                "iconUrl": "http://a1.mzstatic.com/us/r30/Purple5/v4/f9/8d/29/f98d2963-f467-eb5c-af47-b8a904320320/Icon-57.png",

                "iconDataUri": null,

                "appStoreId": 469337564,

                "appDetailUrl": null,

                "categories": [

                    "Productivity",

                    "Business"

                ],

                "appType": "PUBLIC",

                "deviceFamily": "ALL",

                "iosUniversal": true,

                "featuredStatus": "FEATURED_BANNER",

                "free": true,

                "installed": false,

                "updateAvailable": false,

                "cost": 0,

                "currency": "USD",

                "size": 11823052,

                "description": "Adobe Reader is the free, trusted leader for reliably viewing and interacting with PDFs on your iPad, iPhone, and iPod touch.

 

VIEW PDFs

• Quickly open PDF documents from email, the web, or any app that supports “Open In…”

• Search, scroll, zoom in and out

• Choose Single Page or Continuous Scroll mode

• Use Night mode and Brightness Lock for ease of reading

 

ANNOTATE & REVIEW PDFs

• Make comments on PDFs using sticky notes and drawing tools

• Highlight and markup text with annotation tools

 

FILL OUT FORMS

• Quickly fill out PDF forms by typing text into fillable fields

• Save, sign, and forward to others

 

SIGN PDFs

• Use your finger to e-sign any PDF document

• Have other people sign in person right on your touchscreen

 

STORE AND SHARE FILES

• Sign in to your free Acrobat.com account

• Store and access files in the cloud

• Easily share them with others

 

IN-APP PURCHASE

If you’d like to do even more with PDFs from your mobile device, subscribe to one of Adobe’s online services to create PDFs and export PDFs to Word or Excel. You can get started without ever leaving your Adobe Reader mobile app – and you can use the services from your computer and mobile device.

 

CREATE PDF FILES

• Subscribe to Adobe PDF Pack using In-App Purchase

• Create PDF files

• Convert Office files and camera photos to PDF

 

EXPORT PDF FILES TO WORD OR EXCEL

• Subscribe to Adobe Export PDF using In-App Purchase

• Save PDF documents as editable Microsoft Word or Excel files

 

IN-APP PURCHASE DETAILS

• Adobe PDF Pack subscription is $9.99 US dollars per month (includes Adobe ExportPDF)

• Adobe ExportPDF subscription is $23.99 US dollars per year

• Payment will be charged to iTunes Account at confirmation of purchase

• Subscriptions automatically renew unless auto-renew is turned off at least 24-hours before the end of the current period

 

ARE YOU ALREADY A SUBSCRIBER?

• If you have a subscription to ExportPDF, PDF Pack, Acrobat Standard, or Acrobat Pro – just sign in to convert and export PDFs on the go.

 

By downloading, you agree to the Terms of Use at

http://www.adobe.com/products/eulas/#mobileproducts.",

                "installUrl": null,

                "managedAppInstall": false,

                "vppState": "NOT_APPLICABLE",

                "vppInvitationUrl": null,

                "createdAt": 1391639730639,

                "modifiedAt": 1391639730639,

                "developerName": "Adobe",

                "averageRating": null,

                "ratingCount": 0,

                "reinstallAsManaged": false,

                "reviewDetailUrl": null,

                "reviewListUrl": null,

                "phoneScreenshotUrls": [

                    {

                        "cdnGuid": null,

                        "url": "http://a3.mzstatic.com/us/r30/Purple1/v4/f3/f3/79/f3f37907-74fe-3de1-858d-6a737eb1872d/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 334

                    },

                    {

                        "cdnGuid": null,

                        "url": "http://a2.mzstatic.com/us/r30/Purple3/v4/7a/16/ac/7a16ac44-b72d-19d4-2c95-7a4b2976b822/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 334

                    },

                    {

                        "cdnGuid": null,

                        "url": "http://a1.mzstatic.com/us/r30/Purple5/v4/1a/cc/6a/1acc6a6a-7bb8-8deb-7710-077306d9b96a/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 334

                    },

                    {

                        "cdnGuid": null,

                        "url": "http://a4.mzstatic.com/us/r30/Purple1/v4/48/00/07/4800070d-2aaa-7ee0-6a91-8cfd4c59b830/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 334

                    }

                ],

                "tabletScreenshotUrls": [

                    {

                        "cdnGuid": null,

                        "url": "http://a2.mzstatic.com/us/r30/Purple3/v4/70/95/61/7095615b-6bbb-03b8-66c3-a515fdf5d932/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 367

                    },

                    {

                        "cdnGuid": null,

                        "url": "http://a1.mzstatic.com/us/r30/Purple5/v4/45/29/b1/4529b1e0-6e7c-9644-f0ad-5ebf4edde026/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 367

                    },

                    {

                        "cdnGuid": null,

                        "url": "http://a3.mzstatic.com/us/r30/Purple3/v4/d6/92/fc/d692fca9-f1d9-427d-5212-dac3b40c3729/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 367

                    },

                    {

                        "cdnGuid": null,

                        "url": "http://a2.mzstatic.com/us/r30/Purple3/v4/df/ca/64/dfca6440-e1ab-1936-c2e1-2e0ef22ec611/screen480x480.jpeg",

                        "orientation": "PORTRAIT",

                        "height": 480,

                        "width": 360

                    }

                ],

                "firstReview": false

            },

            …

        ],

        "offset": 0

    }

}

                "vulnerable": false, 
                "reputationEnabled": false, 
                "winSupportedArchitectures": null, 
                "appVersionId": 0,
		 "managed": false, 
                "installedAt": null, 
                "threatScore": 0, 
                "exclusion": false
            }, 
           ...
        ], 
        "totalCount": 12, 
        "offset": 0, 
        "limit": 20
    }
}

Get the List of Applications Available to a Particular Device

This call produces a list of all applications available to a specific device.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

/api/v1/app/device/deviceId

Request Parameters

Parameter

Argument Type

Description

Example Value

deviceId

Path

 Device ID.

144334

Example Request

curl --location 'https://[Ivanti Neurons for MDM]/api/v1/app/device/144334' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <token>'

Response Fields

Field

Description

errors

 

result

Container for the results.

    searchResults

Container for the found apps results.

        applicationVersionId

 

        platformType

 

        bundleId

 

        name

 

        whatsNew

 

        displayVersion

 

        iconUrl

 

        bgColor

 

        iconDataUri

 

        appStoreId

 

        appDetailUrl

 

        categories

 

        appType

 

        deviceFamily

 

        iosUniversal

 

        featuredStatus

 

        free

 

        installed

 

        updateAvailable

 

        cost

 

        currency

 

        size

 

        description

 

        installUrl

 

        androidAppInstallType

 

        managedAppInstall

 

        vppState

 

        vppInvitationUrl

 

        createdAt

 

        modifiedAt

 

        developerName

 

        averageRating

 

        ratingCount

 

        reinstallAsManaged

 

        reviewDetailUrl

 

        reviewListUrl

 

        prepaid

 

        requestedAppUrl

 

        hasPrerequisites

 

        prerequisites

 

        appDeviceState

Contains the installation state, including the reason for any installation error.

        phoneScreenshotUrls

 

        tabletScreenshotUrls

 

        itComments

 

        customAttributes

 

        firstReview

 

    totalCount

 

    offset

 

    limit

 

Example Response

{
		"errors": null,
		"result": {
			"searchResults": [
				{
					"applicationVersionId": 211531,
					"platformType": "ANDROID",
					"bundleId": "notizen.bloc.notes.notas.notepad.notatnik.note",
					"name": "ClearNote",
					"whatsNew": "",
					"displayVersion": "1.4.3",
					"iconUrl": "https://dhufqvfidrf46.cloudfront.net/f2c/a3a/f2ca3a36-0545-4952-aaae",
					"bgColor": null,
					"iconDataUri": null,
					"appStoreId": null,
					"appDetailUrl": null,
					"categories": [
						"B1"
					],
					"appType": "IN_HOUSE",
					"deviceFamily": "ALL",
					"iosUniversal": false,
					"featuredStatus": "NONE",
					"free": true,
					"installed": false,
					"updateAvailable": false,
					"cost": null,
					"currency": null,
					"size": 7940389,
					"description": "",
					"installUrl": null,
					"androidAppInstallType": null,
					"managedAppInstall": false,
					"vppState": "NOT_APPLICABLE",
					"vppInvitationUrl": null,
					"createdAt": 1621579962142,
					"modifiedAt": 1638862232294,
					"developerName": "",
					"averageRating": null,
					"ratingCount": 0,
					"reinstallAsManaged": false,
					"reviewDetailUrl": null,
					"reviewListUrl": null,
					"prepaid": false,
					"requestedAppUrl": null,
					"hasPrerequisites": false,
					"prerequisites": [],
					"appDeviceState": "Not Installed",
					"phoneScreenshotUrls": [],
					"tabletScreenshotUrls": [],
					"itComments": null,
					"customAttributes": null,
					"firstReview": false
				}
				...
			],
			"totalCount": 9,
			"offset": 0,
			"limit": 50
		}
	}

List Devices with a Specific App in its App Inventory

This call gets a list of devices with a specific app in its app inventory. For example, you may need to find all of the devices which have version 303 of the email app in their app inventory.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

/api/v1/device?fq=version='n' AND bundleId='id'&type=APP_INVENTORY&platformType=type&dmPartitionId=id

Request Parameters

Parameter

Argument Type

Description

Example Value

version

Path

The version of the app to find. Can be a list of versions with OR operators, for example,unencoded: (version='19' OR version='11' OR version='17' OR version='12' OR version='13').

version='303'

bundleId

Path

The bundle ID of the target app.

bundleId='com.android.mi.email'

platformType

Path

The platform type of the app. IOS or ANDROID.

ANDROID

type

Path

Type of app to find.

type=APP_INVENTORY

dmPartitionId

 Path

Target device space ID.

dmPartitionId=23003

rows

Path

How many rows to return in the query.

Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results.

50

start

Path

Where in the results set to start displaying the rows.

 0

 

Example Request

URL Encoded:

https://[Ivanti Neurons for MDM]/api/v1/device?q=&rows=50&start=0&fq=version%3D%27303%27+AND+bundleId%3D%27com.android.mi.email%27&type=APP_INVENTORY&platformType=ANDROID&dmPartitionId=23003

Unencoded:

https://[Ivanti Neurons for MDM]/api/v1/device?q=&rows=50&start=0&fq=version='303' AND bundleId='com.android.mi.email'&type=APP_INVENTORY

Response Fields

Field

Description

errors

Indicates whether there were errors.

result

Container for results metadata.

    totalCount

How many devices were found with the target app in its inventory.

    queryTime

How long did the query take to execute.

    searchResults

Container for found devices.

            id

Device id.

            phoneNumber

Device phone number.

            deviceModel

Device model

            platformType

Platform type.

            platformVersion

Platform version.

            lastCheckin

When the device last checked in.

            registrationState

Device registration state.

            displayName

Device display name.

            firstName

First name of device owner.

            lastName

Last name of device owner.

            uid

Uid of device owner.

            emailAddress

Email of device owner.

            clientVersion

Version of the Ivanti client on the device.

            manufacturer

Device manufacturer.

            imei

Device imei code.

            wifiMacAddress

Device wifi Mac address.

            serialNumber

Device serial number.

            currentCarrierNetwork

Device  current carrier network.

            subscriberCarrierNetwork

Device subscriber carrier network.

            locale

Locale of the device.

            ownershipType

 

            complianceState

Compliance state of the device.

            roaming

Is the device roaming.

            supervised

 

            udid

 

            clientLastCheckin

Last time the client checked in.

            iccid

 

            currentMcc

 

            currentMnc

 

            subscriberMcc

 

            subscriberMnc

 

            prettyModel

Model name of the device.

            policyViolationCount

How many times has the device violated a policy.

            latitude

Latitude of the device’s location.

            longitude

Longitude of the device’s location.

            locationLastCapturedAt

When device location last captured.

            lastRegistrationTime

When owner last registered the device.

            locationStatusDetail

Container for location status data.

                lastUpdatedAt

   

                locationStatus

 

            actionExceptionCodes

Container for action exception codes.

                    null

        null

            supportLockMessage

 

           ownerId

Id of the device’s owner.

           legalOwnerId

Legal owner of the device, for shared iPad devices.

           legalOwnerEmailAddress

Email address of the device legal owner, for shared iPad devices.

           kioskState

Is this device in kiosk mode.

           customAttributes

Does this device have any custom attributes.

    offset

How many records skipped in this record set.

    limit

How many may be displayed in this record set.

Example Response

{

    "errors": null,

    "result": {

        "totalCount": 6,

        "queryTime": 0,

        "searchResults": [

            {

                "id": 281357,

                "phoneNumber": "14088580543",

                "deviceModel": "Nexus 6",

                "platformType": "ANDROID",

                "platformVersion": "5.0.1",

                "lastCheckin": 1423164808861,

                "registrationState": "ACTIVE",

                "displayName": "Cliff Clasen",

                "firstName": "Cliff",

                "lastName": "Clasen",

                "uid": "[email protected]",

                "emailAddress": "[email protected]",

                "clientVersion": "3.0.0-beta1.5",

                "manufacturer": "motorola",

                "imei": "355458060508091",

                "wifiMacAddress": "ec:88:92:b7:db:cb",

                "serialNumber": "ZX1G322DNT",

                "currentCarrierNetwork": "T-Mobile",

                "subscriberCarrierNetwork": "",

                "locale": "en_US",

                "ownershipType": "UNKNOWN",

                "complianceState": true,

                "roaming": false,

                "supervised": null,

                "udid": null,

                "clientLastCheckin": 1423164808861,

                "iccid": "8901260222782933598",

                "currentMcc": "310",

                "currentMnc": "260",

                "subscriberMcc": "310",

                "subscriberMnc": "260",

                "prettyModel": "Nexus 6",

                "policyViolationCount": null,

                "latitude": 37.654846,

                "longitude": -121.867966,

                "locationLastCapturedAt": 1423154014501,

                "lastRegistrationTime": 1419645191747,

                "locationStatusDetail": {

                    "lastUpdatedAt": 1423154014501,

                    "locationStatus": "AVAILABLE"

                },

                "actionExceptionCodes": [

                    null

                ],

                "supportLockMessage": false,

                "ownerId": 10220,

                "legalOwnerId": null,

                "legalOwnerEmailAddress": null,

                "kioskState": "NOT_CONFIGURED",

                "customAttributes": null

            },

            …

        ],

        "offset": 0,

        "limit": 50

    }

}

Create an App

This call creates an app. You can create in-house apps or public apps. For in-house apps, use the app-data and platformType parameters. For a public app, use the itunes-id parameter. There is no size limit on apps. The limiting factor would be the available disk space.

Authentication

This call requires tenant admin credentials.

HTTP Method

POST

Request URI

api/v1/app

Request Parameters

Parameter

Argument Type

Description

Example Value

app-data

Path

The type is org.springframework.web.multipart.MultipartFile. Specify the location of the app.

app-data=@/Users/Sally.Smith/Downloads/PayDay.ipa

platformType

Path

The platform type of the app. IOS or ANDROID.

IOS

newVersion

Path

Flag to indicate whether app is a new version.

true

itunes-id

 

iTunes identifier for the app.

422020153

overrideUrl

Request body

The app override URL points to a premise-based URL that serves the application. Available for in-house apps for iOS and also in the Update In-House App Details call.

mycompanywebserver.mi.com

Example Request

In-house App

curl -k -u '[email protected]:Nj5oby112233' -XPOST -F 'platformType=IOS' -F 'app-data=@/Users/Sally.Smith/Downloads/PayDay.ipa' "https://[Ivanti Neurons for MDM host]/api/v1/app"

Public App

https://[Ivanti Neurons for MDM]/api/v1/app?itunes-id=422020153 

Example Response

{

    "errors": null,

    "result": true

}

Update an App

To update an app and copy the previous version’s artifacts, you make two calls that:

Uploading the new APK file

Authentication

This call requires tenant admin credentials.

HTTP Method

POST

Request URI

api/v1/app

Request Parameters

Parameter

Argument Type

Description

Example Value

app-data

Request body

The path to the app.

 app-data=@/Users/dmurthy/Documents/ InHouseApps/HelpAtWork-Enterprise-2.ipa

newVersion

Request body

Boolean. Is this a new version. true or false.

 true

cmPartitionId

Request body

The tenant’s content space ID. You can get this value by issuing the GET /api/v1/metadata/tenant call.

20000

platformType

Request body

The platform type, IOS or ANDROID.

 IOS

 

 

 

 

Example Request

curl  -H 'Content-type:multipart/form-data' -kv -X POST -u [username]:[password] "https://[Ivanti Neurons for MDM]/api/v1/app" \

-F "app-data=@/Users/dmurthy/Documents/InHouseApps/HelpAtWork-Enterprise-2.ipa" \

-F "newVersion=true" \

-F "cmPartitionId=20000" \

-F "platformType=IOS"

Response Fields

Field

Description

errors

Indicates whether there were errors.

result

Container for results data.

    addedToExisitingApp

Reflects whether the app was added to the existing app.

    applicationId

The ID of the updated app.

    applicationVersionId

The ID of the new version of the app. You will need this value to use for the targetApplicationVersionId parameter when you make the Copying Previous App Version Artifacts call.

Example Response

{

    "errors": null,

    "result": {

        "addedToExisitingApp": true,

        "applicationId": 16001,

        "applicationVersionId": 17002

    }

}

Copying Previous App Version Artifacts

This call copies the previous version's screenshots, description, and user distribution to the new version. To make this call, you will need the applicationVersionId value returned by the Uploading the new APK file call to use for the targetApplicationVersionId parameter.

Authentication

This call requires tenant admin credentials.

HTTP Method

PUT

Request URI

api/v1/app

Request Parameters

Parameter

Argument Type

Description

Example Value

targetApplicationVersionId

Request body

The ID of the new app version. This is the value returned as the applicationVersionId field of the Uploading the new APK file call.

 17002

Example Request

curl -kv -X PUT -u [username]:[password] "https://[Ivanti Neurons for MDM]/api/v1/app" -d "targetApplicationVersionId=17003"

Example Response

{

    "errors": null,

    "result": true

}

Update In-House App Screenshots

This call updates an in-house app’s screenshots.

Authentication

This call requires tenant admin credentials.

HTTP Method

POST

Request URI

api/v1/app/version/{id}/screenshots

Request Parameters

Parameter

Argument Type

Description

Example Value

id

Path

The id of the app for which to update screenshots

51955

--data-binary

Request body

Specifies the screenshot file to upload.

 $'------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="phoneScreenshots[0].file"; filename="Prince_logo.svg.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\n6130E7E8F8A0DEA95AF08C66DB1D00F401BC1CDA\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9--\r\n'

Request Headers

Header

Description

Example Value

Content-Type: multipart/form-data; boundary

Declaration of conent type and boundary.

-H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryhylqg7c8DT6wyZ1r'

Accept

Specifies which content types to accept.

 'Accept: application/json, text/plain, */*'

Example Request

curl 'https://[Ivanti Neurons for MDM]/api/v1/app/version/52161/screenshots' -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7PINjpFmFrFvAxX9' -H 'Accept: application/json, text/plain, */*' --data-binary $'------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="phoneScreenshots[0].file"; filename="Prince_logo.svg.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\n6130E7E8F8A0DEA95AF08C66DB1D00F401BC1CDA\r\n------WebKitFormBoundary7PINjpFmFrFvAxX9--\r\n' --compressed

Example Response

{

    "errors": null,

    "result": true

}

Update In-House App Icons

This call updates an in-house app’s icons for iOS and macOS apps.

Authentication

This call requires tenant admin credentials.

HTTP Method

POST

Request URI

/api/v2/app/inhouse/{id}/icon?preview=true&dataUri=true

Request Parameters

Parameter

Argument Type

Description

Example Value

id

Path

The id of the app for which to update icons

191477

--data-raw

Request body

Specifies the icon file to upload.

$'------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="image-data"; filename="dmicon.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\nC19031DDBA704882F398337E3E5C4BA82A97AFC2\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY--\r\n' \

Request Headers

Header

Description

Example Value

Content-Type: multipart/form-data; boundary

Declaration of conent type and boundary.

-H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzx9yt1iL0adtOcBY''

Accept

Specifies which content types to accept.

 'Accept: application/json, text/plain, */*'

Example Request

curl 'https://[Ivanti Neurons for MDM]/api/v2/app/inhouse/191477/icon?preview=true&dataUri=true' \ -H 'Accept: application/json, text/plain, */*' \ -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzx9yt1iL0adtOcBY' \ --data-raw $'------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="image-data"; filename="dmicon.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY\r\nContent-Disposition: form-data; name="X-XSRF-Token"\r\n\r\nC19031DDBA704882F398337E3E5C4BA82A97AFC2\r\n------WebKitFormBoundaryzx9yt1iL0adtOcBY--\r\n' \ --compressed

Example Response

data:image/png;base64,(and then the image data)

Update In-House App Details

This call updates an in-house app’s:

    Name

    Display version

    Category

    What’s New

    Description

Authentication

This call requires tenant admin credentials.

HTTP Method

PUT

Request URI

/api/v2/app/inhouse/{applicationVersionId}

Request Parameters

Parameter

Argument Type

Description

Example Value

applicationVersionId

Path

Mandatory

Version of the app to update.

Use GET https:// [Ivanti Neurons for MDM]/api/v1/app/{id} to get the applicationVersionId.

{id} is the app ID. Use GET https://[Ivanti Neurons for MDM]/api/v1/app?q=&cmPartitionId={cmPartitionId} to get the value for {id}

54710

dmPartitionId

Request body

Device space ID for the call.

23505

dmPartitionDistributionType

Request body

Distribution type for the call.

ALL

enableReviews

Request body

Mandatory

Are reviews enabled?

Use GET https://[Ivanti Neurons for MDM]/api/v1/app/{id} to get the value for this parameter.

true

enableRatings

Request body

Mandatory

Are ratings enabled?

Use GET https://[Ivanti Neurons for MDM]/api/v1/app/{id} to get the value for this parameter.

true

appType

Request body

Indicates the type of app to update.

IN_HOUSE

mamWithOutMDM

Request body

Is this application under mobile application management (MAM) without mobile device management (MDM)?

false

id

Request body

Mandatory

ID of the app to update.

Use GET https://[Ivanti Neurons for MDM]/api/v1/app?q=&cmPartitionId={cmPartitionId} to get the value for this parameter.

43488

whatsNew

Request body

New description for what’s new.

Better memory management

description

Request body

New description.

Great word game!

displayVersion

Request body

Mandatory

New display version.

Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value.

2.0.0

primaryVersion

Request body

Mandatory

Primary version of the app.

Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value.

200

developerName

Request body

Name of the app’s developer.

Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value.

 

name

Request body

Mandatory

New name of app.

Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value.

Words against the World

overrideUrl

Request body

The app override URL points to a premise-based URL that serves the application.

mycompanywebserver.mi.com

platformAppId

Request body

Mandatory

App ID on the target platform

Use Get a List of In-House Apps or GET /api/v1/app/<applicationVersionId> to find this value.

rz.scrambler.app

categoryIds

Request body

New category IDs.

Use GET https://[Ivanti Neurons for MDM]/api/v1/app/category to obtain the category IDs.

25185

distributionSettings

Request body

Container for app distribution settings.

 

    groupIds

Request body

Group IDs to which to distribute the app.

 

    accountIds

Request body

Account IDs to which to distribute the app

 

configDistributionSettings

Request body

Config distribution settings for the app.

 

Example Request

curl -X PUT \

  https://[Ivanti Neurons for MDM]/api/v2/app/inhouse/54710 \

  -H 'accept: application/json' \

  -H 'authorization: Basic <token>' \

  -H 'cache-control: no-cache' \

  -H 'content-type: application/json' \

  -d '{

    "dmPartitionId": 23505,

    "dmPartitionDistributionType": "ALL",

    "enableReviews": true,

    "enableRatings": true,

    "appType": "IN_HOUSE",

    "mamWithOutMDM": false,

    "id": 43488,

    "whatsNew": "Better memory management.",

    "description": "Great word game!",

    "displayVersion": "2.0.0",

    "primaryVersion": "200",

    "developerName": "",

    "name": "Words against the World",

    "overrideUrl": "",

    "platformAppId": "rz.scrambler.app",

    "categoryIds": [

        25185

    ],

    "distributionSettings": {

        "groupIds": [ ],

        "accountIds": [ ]

    },

    "configDistributionSettings": { }

}'

Example Response

{

    "errors": null,

    "result": true

}

Get a List of In-House Apps

This call gets a list of in-house apps

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

api/v1/app

Request Parameters

Parameter

Argument Type

Description

Example Value

rows

Path

How many rows to return in the query.

Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results.

 20

start

Path

Where in the results set to start displaying the rows.

 0

cmPartitionId

Path

The content partition ID. You can get it with the GET tenant metadata call.

 20003

facetFq

Path

The query for in house, which is, url encoded, APPTYPE+%3D+%27IN_HOUSE%27, and not url encoded: APPTYPE = 'IN_HOUSE'.

To see a list of public apps, it is an identical call, except use PUBLIC instead of IN_HOUSEin the call. URL encoded, like this: facetFq:APPTYPE+%3D+%27PUBLIC%27+.

 facetFq=APPTYPE+%3D+%27IN_HOUSE%27+

sortFields[0].name

Path

The column on which to sort.

name

sortFields[0].order

Path

Sort order, ASC or DESC

 

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app?q=&rows=20&start=0&cmPartitionId=20003&facetFq=APPTYPE+%3D+%27IN_HOUSE%27+&sortFields%5B0%5D.name=name&sortFields%5B0%5D.order=ASC

Example Response

{

  "errors":null,

  "result":{

    "totalCount":142,

    "queryTime":11,

    "searchResults":[

      {

        "name":"2048",

        "description":"Inspired by Gabriele Cirulli game available on the web: http://gabrielecirulli.github.io/2048/\n\nJoin the numbers and get to the 2048 tile!\n\nSwipe to move all tiles. When two tiles with the same number touch, they merge into one.\n\nGet to the 2048 tile, and reach a high score!",

        "iconUrl":"http://a5.mzstatic.com/us/r30/Purple3/v4/73/25/fe/7325fe5c-100c-b853-b0a7-5a0602b58e74/AppIcon57x57.png",

        "currency":"USD",

        "cost":0.0,

        "size":3463448,

        "versions":[

          {

            "name":"2048",

            "featuredStatus":"NONE",

            "primaryVersion":null,

            "secondaryVersion":"1.8",

            "displayVersion":"1.8",

            "minOsVersion": "1.6",
            "applicationVersionId":19278,

            "size":3463448,

            "distributionCount":null

          }

        ],

        "id":18122,

        "createdAt":1401908341993,

        "createdBy":11902,

        "modifiedAt":1413266398620,

        "modifiedBy":10010,

        "platformAppId":"com.ketchapp.2048",

        "platformType":"IOS",

        "appType":"PUBLIC",

        "appStoreId":840919914,

        "cmPartitionId":20003,

        "distributionCount":null,

        "avgRating":null,

        "ratingCount":0,

        "latestDisplayVersion":"1.8",

        "featuredStatus":"NONE"

      },

        ],

    "offset":0,

    "limit":20,

    "facetedResults":{

      "DEVICETYPE":{

        "PHONE":0,

        "ALL":131,

        "PAD":11

      },

      "FEATUREDSTATUS":{

        "FEATURED_BANNER":15,

        "FEATURED":60,

        "NONE":67

      },

      "PLATFORMTYPE":{

        "ANDROID":32,

        "IOS":110

      },

      "APPTYPE":{

        "IN_HOUSE":24,

        "PUBLIC":142

      }

    },

    "totalUnfilteredResultCount":178

  }

}

Get a List of In-House Apps and Associated Provisioning Profile

This call returns a list of in-house apps and any provisioning profile attached to them for a designated deviceSpaceId. This information would be helpful to administrators who need to renew provisioning profiles before expiration. Provisioning profiles are not Mobilelron Ivanti Neurons for MDM configurations, rather, Apple Developer site profiles that authorize devices to launch in-house apps.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

api/v1/app/inhouse/profiles?rows={n}&start={n}&dmPartitionId={dmPartitionId}

Request Parameters

Parameter

Argument Type

Description

Example Value

rows

Path

Data Type: Number

How many rows to return in the query.

Do not send a value larger than 500 with the rows parameter because the APIs do not permit a value of greater than 500. See Controlling Results.

5

start

Path

Data Type: Number

Where in the results set to start displaying the rows.

0

dmPartitionId

Path

Required

Data Type: Number

The device partition ID.

23000

Example Request

curl -X GET -kv -u [email protected]:AsdFjYu -i -H 'Authorization:Basic <token>' "https://[Ivanti Neurons for MDM]/api/v1/app/inhouse/profiles?rows=5&start=0&dmPartitionId=23000"

Response Fields

Field

Description

errors

Null if no errors.

result

JSON container for results.

    searchResults

JSON container for search results.

            bundleId

Bundle ID of the app.

            platformType

Platform type of the app, for example, IOS.

            appType

Will always be IN_HOUSE because this call returns in-house apps.

            name

Name of the app.

            primaryVersion

Primary version of the app.

            displayVersion

Display version of the app.

            minOsVersion

Minimum required OS version for the app.

            applicationVersionId

Version ID of the app.

            provisioningProfile

JSON container for provisioning profile results.

                uuid

UUID of provisioning profile.

                certs

JSON container for certificate results.

                        issuingName

Issuing name of certificate.

                        expiration

Timestamp of certificate expiration.

                        serialNumber

Certificate serial number.

                        name

Certificate name.

                id

Provisioning profile ID.

                devTeamName

Name of development team.

                expirationDate

Timestamp of provisioning profile expiration.

    totalCount

How many records found.

    offset

Offset setting in originating call.

    limit

Limit setting in originating call.

Example Response

{ "errors": null, "result": { "searchResults": [ { "bundleId": "com.mobileiron.enterprise.HelloAppConnect", "platformType": "IOS", "appType": "IN_HOUSE", "name": "Hello AppConnect", "primaryVersion": "1.0", "displayVersion": "1.0", "minOsVersion": "4.0.3",                 "applicationVersionId": 17000, "provisioningProfile": { "uuid": "87d4542c-8ad9-4484-8b05-5141605c33a5", "certs": [ { "issuingName": "CN=Apple Worldwide Developer Relations Certification Authority, OU=Apple Worldwide Developer Relations, O=Apple Inc., C=US", "expiration": 1631644174000, "serialNumber": 8578898181722912226, "name": "C=US, O=MobileIron, OU=W8M2C9P2R6, CN=iPhone Distribution: MobileIron, UID=W8M2C9P2R6" } ], "id": 36500, "devTeamName": "MobileIron", "expirationDate": 1568675261000 } } ], "totalCount": 1, "offset": 0, "limit": 5 } }

Copy Latest In-House App Version Metadata

This call copies the latest In-house app version metadata.

Authentication

This call requires tenant admin credentials.

HTTP Method

PUT

Request URI

api/v1/app

Request Parameters

Parameter

Argument Type

Description

Example Value

targetApplicationVersionId

Request Body

The target app version id for which the metadata must be copied.

111111

Example Request

Example Request URL

curl -X PUT 'https://<hostname>/api/v1/app?targetApplicationVersionId=111111’\

--header 'Authorization: Basic Auth =='\

--header 'Content-Type: application/json' \

Discover Devices Eligible for a Given App

This call returns the device GUIDs that do not have the given app installed yet, but are eligible to receive the given app based on the distribution criteria defined by the admin.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

api/v1/app/eligibledevices

Request Parameters

Parameter

Argument Type

Description

Example Value

dmPartitionId

Query

Required

Data Type: Long

The device partition ID.

23000

appId

Query

Required

Data Type: String

The platformAppId as returned by GET /api/v2/app.

com.mobileiron.anyware.ios

appVersion

Query

Data Type: String

The version of the app. Only valid for in-house apps.

1.0.6

platformType

Query

Required

Data Type: String

The platform type. Can be ANDROID or IOS.

IOS

Response Fields

Field

Description

errors

null if no errors.

result

JSON container for results, which is a list of eligible device GUIDs for a successful call, or a message that the application was not found when the call cannot find the app specified by appId. You can use the GUIDs when installing an app as described in Install an App to devices with specified GUIDs - Synchronous - iOS Only.

Example Requests

For a public app or latest version of in house app

curl -X GET -u '<user>:<password>' "https://<HOST>/api/v1/app/eligibledevices?dmPartitionId=23000&appId=com.mobileiron.anyware.ios&platformType=IOS"

For a specific version of an in house app

curl -X GET -u '<user>:<password>' "https://<HOST>/api/v1/app/eligibledevices?dmPartitionId=23000&appId=com.mobileiron.enterprise.EnggSpecs&appVersion=1.0.6&platformType=IOS"

Example Response

Success:

{ "errors": null, "result": [ "3fc9c1df-4f87-4db5-9569-362064a1c2ce", "17045366-798e-4a96-9a1c-bbe72db6e020", "f886f32f-f818-4ddc-bc58-73492d6fd3fc", "6dfbcdeb-b582-474b-97cb-12f0aa5c238a", "3c0f8242-31bb-4ebc-83c3-6f9b814efc6d", "182f601a-a071-40fc-8736-babc19bc1284", "cbd269f7-51fd-4c60-a770-5be709a9ed6c", "101e96f6-11e2-4f5f-9145-e24bb98d2824", "70f9337b-6f29-454b-964d-47f328bffad5", "c1bf665d-8baa-41a6-aeba-58bdbf071d7f", "61a8bdb1-132e-4b01-b5b8-240ff760b306", "524c7ee5-3cf8-4ab4-857c-cb81fd206ca5", "c16ca13a-0d0e-4267-93fc-22456a68c91b", "a4bb56ec-86e8-4b54-ae5d-7d99a0f4e642", "ec57a972-ce82-4651-89b4-588ccab348f8", "3abcdfb3-b186-4e88-ba1a-862479f43fba", "f2fd2ad7-5888-403f-a738-d4a9a9241642", "b9d612e7-d895-45b9-8944-8f13aed5ecf6", "a6991857-c151-48bd-9bd0-b7704c6c4ce7", "82849619-ee8d-46ab-a9d3-910e45fc2e92", "bc63b64e-a851-4b61-86ed-c4e014fac81e", "8bfb95ac-f20b-4cd4-bb87-bb3202109d88", "e9540bfa-39dc-41e0-8052-ef0a02b1bc88", "4457ae76-b1c1-445c-ad00-b6e8eaf854c7", "78e9b28b-9616-4f7c-90b6-239ee816e532", "7f97cb39-3592-4476-9cf1-20a684f1e494", "7a7741fb-8a98-4886-a2a4-16f06029fc90", "79b8f175-8132-4a29-a7cd-dea7bb28bdc3", "f0dda2ce-96ba-4b5d-836f-a91cdd06818f", "f45a72ca-a3b7-49e1-9c33-f635a00cca20", "dacb9468-e0ec-4489-aaaf-bb680203367f", "9a55a26f-db96-404b-8bae-337bb3cce435", "84ae3cef-8f0d-49ec-bc03-6bfe3140f8de", "c2fc7567-c033-4a24-9b90-0cea78cc2482", "bc34d594-d2d2-479c-b179-459407067788", "c57a99df-b165-4756-84f2-ad53cf532087", "3e01ed72-0ea9-472e-b309-8362f6b6bb74", "587ae91c-9d8c-4139-9bb8-180272484ff2", "96658e47-3ddc-44d5-9b1e-038300a877a2", "42134b5c-e0ae-44bb-9a0b-65671d2ec5cc", "7bb564da-adaa-429f-aad3-56d9b1c45a0a", "72e64c50-256c-4f85-b09f-46ceae9718cd", "dbccbe70-7499-4676-88b0-a6d5d298752e", "cf192316-2203-4618-bf48-fd9ee4a6ecf8", "88eb4678-7250-484f-b8c3-5e93d46cc986", "dee29d04-fe74-40ae-b0e0-5d8f47367184", "28643e0b-86cf-4c60-b807-ccd44453cbdd", "74fd25d0-c710-461a-ac46-e853b2654131", "b0513d07-5fe9-4b92-9dbe-ff25d4e90af3", "91a241ed-9297-4918-ae75-8cf443284800", "58f1a629-068f-45f2-88c7-f939d06b5ff1", "f0704c9b-33e9-490f-8a90-4e4e45f3d0b2", "308617c9-0902-4106-ac43-a90f98b26df6", "1eb4e3af-4f0d-424e-b19d-c3356d9aa1e6", "52cd5ccf-2859-4e5e-a5d0-31ec7164b445", "86748059-8d13-427c-a582-3e9940c0ba13", "413f6e38-0399-41ca-a83f-509542f40a37", "c5c4bfc3-d697-4d0a-9f40-49ad19f1b12c", "6f8ae67a-17d2-4b38-a010-bd74300e95cc", "db6b365a-efc3-4257-999e-bcb1625f4877", "db3618ce-c187-403b-ac84-cb8794439a18", "9850270d-23d6-4899-8d3e-893a12092e89" ] }

 

If app not found:

 

{ "errors": { "globalErrors": [ { "code": "ASF-131", "message": "The application was not found." } ], "fieldErrors": null }, "result": null }

Install an App to devices with specified GUIDs - Asynchronous - iOS Only

This call triggers an app install for specific device GUIDs. Use this call instead of the synchronous version for better performance. You can use Discover Devices Eligible for a Given App to get a list of eligible GUIDs. You can use Get asynchronous task list for current user to monitor the status of the installations.

Authentication

Ivanti recommends that the user making the call be an API User. To create an API user, navigate in the Ivanti Neurons for MDM portal to Users > Users +Add > API User. Additionally, the user making the call needs the App & Content Management role.

HTTP Method

PUT

Request URI

/api/v2/app/install/async

Request Parameters

Parameter

Argument Type

Description

Example Value

dmPartitionId

Request body

Required

Data Type: Long

The device partition ID.

23000

guids

Request body

Required

Data Type: String

List of device GUIDs of the devices on which to install the app.

b8b55026-502b-4f64-a422-f1f094aec6ba

bundleId

Request body

Required

Data Type: String

The bundle id of the application you want to install.

com.eeenmachine.pocketplanes

appVersion

Request body

Data Type: String

The specific version of the application you want to install.

1.2.4

platformType

Request body

Required

Data Type: String

The platform type. Must be IOS.

IOS

Response Fields

Field

Description

errors

Null if no errors.

    result

 

        noOfPollRequestsRemaining

 

        nextIntervalInMillis

 

        taskList

 

                taskId

Use this value when referring to the return of GET /api/v1/asynctask/all to find the progress of the associated task.

                taskType

 

                taskStatus

Status of the task.

                createdAt

 

                description

Name of app being installed.

Example Request

curl -X PUT \ https://[Ivanti Neurons for MDM]/api/v2/app/install/async \ -H 'Authorization: Basic <token>' \ -H 'Content-Type: application/json' \ -d '{ "bundleId": "com.eeenmachine.pocketplanes", "dmPartitionId": 23000, "appVersion": "1.2.4", "platformType": "IOS", "guids": [ "b8b55026-502b-4f64-a422-f1f094aec6ba", "6ff689c0-21c7-47a8-a979-3f35c989667d" ] }'

Example Response

Success when GUIDs are eligible for install.

{
  "errors": null,
  "result": {
    "noOfPollRequestsRemaining": 13,
    "nextIntervalInMillis": 1000,
    "taskList": [
      {
        "taskId": 40,
        "taskType": "APP_INSTALL_GUID",
        "taskStatus": "QUEUED",
        "createdAt": 1650473330150,
        "description": "App com.eeenmachine.pocketplanes install/update for 2 device(s)"
      }
    ]
  }
}

When GUIDs are not eligible for install.

{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "deviceGuidsNotEligibleForApp": [ "2615eeb3-4f5c-4e8a-a16f-ae07f3519785", "2615eeb3-4f5c-4e8a-a16f-ae07f3519784", "2615eeb3-4f5c-4e8a-a16f-ae07f3519783" ] } }

Install an App to devices with specified GUIDs - Synchronous - iOS Only

This call triggers an app install for specific device GUIDs. Use the asynchronous version of this call for better performance. You can use Discover Devices Eligible for a Given App to get a list of eligible GUIDs.

Authentication

This call requires tenant admin credentials.

HTTP Method

PUT

Request URI

/api/v2/app/install

Request Parameters

Parameter

Argument Type

Description

Example Value

dmPartitionId

Request body

Required

Data Type: Long

The device partition ID.

23000

guids

Request body

Required

Data Type: String

List of device GUIDs of the devices on which to install the app.

2615eeb3-4f5c-4e8a-a16f-ae07f3519783

bundleId

Request body

Required

Data Type: String

The bundle id of the application you want to install.

com.mobileiron.anyware.ios

appVersion

Request body

Data Type: String

The specific version of the application you want to install.

1.1.1

platformType

Request body

Required

Data Type: String

The platform type. Must be IOS.

IOS

Response Fields

Field

Description

errors

null if no errors.

result

JSON container for results, which is a list of device GUIDs.

    numberOfTriggeredAppInstalls  

How many successfully triggered installs occurred.

    deviceGuidsNotEligibleForApp

List of ineligible device GUIDs.

Example Request

curl -X PUT \ https://[Ivanti Neurons for MDM]/api/v2/app/install \ -H 'Authorization: Basic <token>' \ -H 'Content-Type: application/json' \ -d '{ "guids": [ "3fc9c1df-4f87-4db5-9569-362064a1c2ce", "3c0f8242-31bb-4ebc-83c3-6f9b814efc6d", "cbd269f7-51fd-4c60-a770-5be709a9ed6c" ], "bundleId": "com.playgendary.bowmasters", "dmPartitionId": 23504, "appVersion": "1.1.1", "platformType": "IOS" }'

Example Response

Success when GUIDs are eligible for install.

{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 3, "deviceGuidsNotEligibleForApp": [] } }

When GUIDs are not eligible for install.

{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "deviceGuidsNotEligibleForApp": [ "2615eeb3-4f5c-4e8a-a16f-ae07f3519785", "2615eeb3-4f5c-4e8a-a16f-ae07f3519784", "2615eeb3-4f5c-4e8a-a16f-ae07f3519783" ] } }

Install an App based on App Distribution Filters - Asynchronous - iOS Only

This call triggers an asynchronous app install for devices found by specific app distribution filters. Use this call instead of the synchronous version for better performance. You can also trigger an install for all devices that already have the app. You can use Get asynchronous task list for current user to monitor the status of the installations.

Authentication

Ivanti recommends that the user making the call be an API User. To create an API user, navigate in the Ivanti Neurons for MDM portal to Users > Users +Add > API User. Additionally, the user making the call needs the App & Content Management role.

HTTP Method

PUT

Request URI

/api/v2/app/{appVersionId}/install/async

Request Parameters

Parameter

Argument Type

Description

Example Value

appVersionId

Request path

Required

Data Type: String

The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body.

17003

appVersionId

Request Body

Required

Data Type: Long

The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body.

17003

dmPartitionId

Request body

Required

Data Type: Long

The device partition ID.

23000

appDeviceFilterId

Request body

Data Type: Long

App distribution filter to use for determining on which devices to install the app. Use GET /api/v1/app/devicefilter?dmPartitionId=<dmPartitionId>&includeAppCount=true|false for a list of valid filters.

6

accountIds

Request body

Data Type: Long

Account IDs to which to distribute the app. Use the Get All Accounts call for a list of valid account IDs.

10050

accountGroupIds

Request body

Data Type: Long

Account group IDs to which to distribute the app. Use the List User Groups call for a list of account group IDs.

11000

requestNewInstall

Request body

Required

Data Type: Boolean

true or false. If true, perform a new install. If false, do not perform a new install. See Understanding the requestNewInstall and requestUpdate Parameters for more information.

true

requestUpdate

 

Data Type: Boolean

true or false. If true, perform an update install. If false, do not perform an update install. See Understanding the requestNewInstall and requestUpdate Parameters for more information.

false

everyoneWithApp

Request body

Required

Data Type: Boolean

true or false. If true, perform an install for everyone with the app. If false, do not perform an update for everyone with the app.

false

Understanding the requestNewInstall and requestUpdate Parameters

Use the requestNewInstall and requestUpdate parameter to specify the desired actions: only new install, only update, or update and install.

For example:

  • If app is installed and you request new install: it will not install
  • If app is not install and you request update: it will not install
  • If app is installed (old version) and you request update (new version): it installs
  • No app and you request install: it installs
  • Not installed and you request install and update: it installs

Response Fields

Field

Description

errors

Null if no errors.

    result

 

        noOfPollRequestsRemaining

 

        nextIntervalInMillis

 

        taskList

 

                taskId

Use this value when referring to the return of GET /api/v1/asynctask/all to find the progress of the associated task.

                taskType

 

                taskStatus

Status of the task.

                createdAt

 

                description

Name of app being installed.

Example Request

PUT /api/v2/app/17003/install/async -d '{"appVersionId":17003,"dmPartitionId":23000,"appDeviceFilterId":null,"accountIds":[],"accountGroupIds":[],"deviceIds":[],"ruleGroupIds":[],"requestNewInstall":true,"requestUpdate":false,"everyoneWithApp":true}'

Example Response

Success

{ "errors": null, "result": { "noOfPollRequestsRemaining": 13, "nextIntervalInMillis": 1000, "taskList": [ { "taskId": 5, "taskType": "APP_INSTALL_DIST", "taskStatus": "QUEUED", "createdAt": 1649264141176, "description": "App Pocket Planes - Airline Management 1.2.4 install/update" } ] } }

When app not found

{ "errors": { "globalErrors": [ { "code": "ASF-131", "message": "The application was not found." } ], "fieldErrors": null }, "result": null }

When no eligible device found

{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "resultMessage": "No eligible devices were found for the install/update request for this application." } }

 

Install an App based on App Distribution Filters - Synchronous - iOS Only

This call triggers an app install for devices found by specific app distribution filters. You can also trigger an install for all devices that already have the app. Use the asynchronous version of this call for better performance.

Authentication

This call requires tenant admin credentials.

HTTP Method

PUT

Request URI

/api/v2/app/{appVersionId}/install

Request Parameters

Parameter

Argument Type

Description

Example Value

appVersionId

Request path

Required

Data Type: String

The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body.

17015

appVersionId

Request Body

Required

Data Type: Long

The specific version of the application you want to install. This call takes the appVersionId parameter in the request path and request body.

17015

dmPartitionId

Request body

Required

Data Type: Long

The device partition ID.

23000

appDeviceFilterId

Request body

Data Type: Long

App distribution filter to use for determining on which devices to install the app. Use GET /api/v1/app/devicefilter?dmPartitionId=<dmPartitionId>&includeAppCount=true|false for a list of valid filters.

6

accountIds

Request body

Data Type: Long

Account IDs to which to distribute the app. Use the Get All Accounts call for a list of valid account IDs.

10050

accountGroupIds

Request body

Data Type: Long

Account group IDs to which to distribute the app. Use the List User Groups call for a list of account group IDs.

11000

requestNewInstall

Request body

Required

Data Type: Boolean

true or false. If true, perform a new install. If false, do not perform a new install. See Understanding the requestNewInstall and requestUpdate Parameters for more information.

true

requestUpdate

 

Data Type: Boolean

true or false. If true, perform an update install. If false, do not perform an update install. See Understanding the requestNewInstall and requestUpdate Parameters for more information.

false

everyoneWithApp

Request body

Required

Data Type: Boolean

true or false. If true, perform an install for everyone with the app. If false, do not perform an update for everyone with the app.

false

Understanding the requestNewInstall and requestUpdate Parameters

Use the requestNewInstall and requestUpdate parameter to specify the desired actions: only new install, only update, or update and install.

For example:

  • If app is installed and you request new install: it will not install
  • If app is not install and you request update: it will not install
  • If app is installed (old version) and you request update (new version): it installs
  • No app and you request install: it installs
  • Not installed and you request install and update: it installs

Response Fields

Field

Description

errors

null if no errors.

result

Number of devices successfully queued for install.

Example Request

curl -X PUT \ https://[Ivanti Neurons for MDM]/api/v2/app/17000/install \ -H 'Authorization: Basic <token>' \ -H 'Content-Type: application/json' \ -d '{ "dmPartitionId": 23000, "appVersionId": 17000, "appDeviceFilterId": 4, "accountIds": [ 10050, 10051 ], "accountGroupIds": [ 11000 ], "requestNewInstall": false, "requestUpdate": true, "everyoneWithApp": false }'

Example Response

Success

{ "errors": null, "result": 3 }

When app not found

{ "errors": { "globalErrors": [ { "code": "ASF-131", "message": "The application was not found." } ], "fieldErrors": null }, "result": null }

When no eligible device found

{ "errors": null, "result": { "numberOfTriggeredAppInstalls": 0, "resultMessage": "No eligible devices were found for the install/update request for this application." } }

Get asynchronous task list for current user

This call returns the asynchronous tasks status for current user. You can use it to monitor the progress of the Install an App to devices with specified GUIDs - Asynchronous - iOS Only and Install an App based on App Distribution Filters - Asynchronous - iOS Only calls.

Authentication

Ivanti recommends that the user making the call be an API User. To create an API user, navigate in the Ivanti Neurons for MDM portal to Users > Users +Add > API User. Additionally, the user making the call needs the App & Content Management role.

HTTP Method

GET

Request URI

api/v1/asynctask/all

Response Fields

 

Field Description

errors

 

result

 

    noOfPollRequestsRemaining

 

    nextIntervalInMillis

 

    taskList

 

            taskId

Corresponds to the taskId values returned by Install an App to devices with specified GUIDs - Asynchronous - iOS Only and Install an App based on App Distribution Filters - Asynchronous - iOS Only.

            taskType

 

            taskStatus

 

            createdAt

 

            description

 

            responseData

 

                numberOfTriggeredAppInstalls

 

                numberOfNonTriggeredAppInstalls

 

                moreVppLicensesAreNeeded

 

                licenseAgreementNotAccepted

 

                appName

 

                appVersion

 

                notificationThreadUuid

 

Example Request

curl --location --request GET 'https://[Ivanti Neurons for MDM]/api/v1/asynctask/all' \
			--header 'Accept: application/json, text/plain, */*' \
			--header 'Content-Type: application/json' \
		--header 'Authorization: Basic <token>'

Example Response

Success:

{
    "errors": null, 
    "result": {
        "noOfPollRequestsRemaining": 13, 
        "nextIntervalInMillis": 1000, 
        "taskList": [
            {
                "taskId": 5, 
                "taskType": "APP_INSTALL_DIST", 
                "taskStatus": "COMPLETE", 
                "createdAt": 1649264141176, 
                "description": "App Pocket Planes - Airline Management 1.2.4 install/update", 
                "responseData": {
                    "numberOfTriggeredAppInstalls": 1, 
                    "numberOfNonTriggeredAppInstalls": 0, 
                    "moreVppLicensesAreNeeded": 0, 
                    "licenseAgreementNotAccepted": 2, 
                    "appName": "App Pocket Planes - Airline Management", 
                    "appVersion": "1.2.4", 
                    "notificationThreadUuid": "83f2005b-4b8e-4527-a80b-551815258297"
                }
            }
        ]
    }
}

Get the Status of the Asynchronous Request

This API provides the status of the Asynchronous task request.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

api/v1/asynctask/status/{taskGuid}

Request Parameters

Parameter

Argument Type

Description

Example Value

taskGuid

Request body

Required

Data Type: string

8cf7b560-1172-

418e-a9cc0db7197ffe9f

Example Response

{
    "errors": null, 
    "result": {
       "taskUuid": "8cf7b560-1172-418e-a9cc-0db7197ffe9f",

"taskType": "CLEAR_CONFIG_ERROR",

"taskStatus": "COMPLETE",

"createdAt": 1701099803091,

"modifiedAt": 1701099803112,

"errorConfigsCleared": 56

    }
}

Retry Installation of Error Configurations

This API retries the installation of error configurations on devices.

Authentication

This call requires tenant admin credentials.

HTTP Method

POST

Request URI

api/v1/asynctask

Request Parameters

Parameter

Argument Type

Description

Example Value

taskGuid

Request body

Required

Data Type: string

CLEAR_CONFIG_ERROR

Example Response

{
    "errors": null, 
    "result": {
       "taskUuid": "8cf7b560-1172-418e-a9cc-0db7197ffe9f",

"taskType": "CLEAR_CONFIG_ERROR",

"taskStatus": "QUEUED",

"createdAt": 1701099803091

    }
}

Delete an App

When Ivanti Neurons for MDM uploads an app, it  assigns the app an appId and a version ID, which you use along with the cmPartitionId to remove that version of the app.

Authentication

This call requires tenant admin credentials.

HTTP Method

DELETE

Request URI

api/v1/app/appId/version?cmPartitionId=value&id=value

Request Parameters

Parameter

Argument Type

Description

Example Value

appId

Path

Application ID

 16003

cmPartitionId

Path

The Content space ID id is the ID of the space containing the version to delete.

 20000

id

Path

The id of the specific version of the application you want to delete.

name

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/16003/version?cmPartitionId=20000&id=17004

Review and Rate an App

This call creates an app review and rating.

Authentication

Basic authentication is not supported with this API call.

HTTP Method

POST

Request URI

/c/api/v1/appstore/AppVersionId/review?summary=summaryText&rating=ratingNumber&title=title

Request Parameters

Parameter

Argument Type

Description

Example Value

ApplicationVersionId

Path

Integer. The application’s version ID. Use GET /api/v1/app/id to get the value for applicationVersionId.

17001

summaryText

Path

String. The summary text for the review. This is the main text for the review.

Great little app! I use it all the time.

ratingNumer

Path

Integer. The rating number for the review, from 1 to 5.

5

title

Path

String. The title of the review.

Must have!

Example Request

curl -X POST -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" https://[Ivanti Neurons for MDM]/c/api/v1/appstore/17026/review?summary=Great!&rating=5&title=Must have!

Response Fields

Field

Description

errors

null if no errors.

result

true if successful,

Example Response

{

    "errors": null,

    "result": true

}

Get All Reviews

This call gets all reviews in the specified content space.

Authentication

This call requires tenant admin credentials.

HTTP Method

GET

Request URI

/api/v1/app/review?cmPartitionId= cmPartitionId

Request Parameters

Parameter

Argument Type

Description

Example Value

cmPartitionId

Path

The Content space ID id is the ID of the desired space containing the reviews to get.

 20003

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/review?cmPartitionId=20003

Response Fields

Field

Description

errors

 

result

 

    totalCount

 

    queryTime

 

    searchResults

 

            id

 

            tenantId

 

            cmPartitionId

 

            title

 

            summary

 

            reviewState

 

            versionTag

 

            applicationId

 

            applicationVersionId

 

            createdAt

 

            createdBy

 

            modifiedAt

 

            modifiedBy

 

            displayName

 

            rating

 

            appVersionName

 

            iconUrl

 

            platformType

 

    offset

 

    facetedResults

 

        RATING

 

            1

 

            2

 

            3

 

            4

 

            5

 

        PLATFORMTYPE

 

            ANDROID

 

            IOS

 

        APPTYPE

 

            IN_HOUSE

 

            PUBLIC

 

    totalUnfilteredResultCount

 

Example Response

{

    "errors": null,

    "result": {

        "totalCount": 39,

        "queryTime": 1,

        "searchResults": [

            {

                "id": 49069,

                "tenantId": 42004,

                "cmPartitionId": 20003,

                "title": "ok",

                "summary": "",

                "reviewState": "PUBLISHED",

                "versionTag": "1.7.8",

                "applicationId": 16031,

                "applicationVersionId": 17031,

                "createdAt": 1385061019059,

                "createdBy": 10141,

                "modifiedAt": null,

                "modifiedBy": null,

                "displayName": "Nimish Amin",

                "rating": 3,

                "appVersionName": "ADP Mobile Solutions",

                "iconUrl": "http://a1.mzstatic.com/us/r30/Purple4/v4/37/fc/52/37fc52cc-772f-5231-f60c-ba6692f24645/icon.png",

                "platformType": "IOS"

            },

        ],

        "offset": 0,

        "facetedResults": {

            "RATING": {

                "1": 2,

                "2": 3,

                "3": 6,

                "4": 12,

                "5": 16

            },

            "PLATFORMTYPE": {

                "ANDROID": 5,

                "IOS": 34

            },

            "APPTYPE": {

                "IN_HOUSE": 1,

                "PUBLIC": 38

            }

        },

        "totalUnfilteredResultCount": 39

    }

}

Delete an App Review

This call deletes an App review.

Authentication

This call requires tenant admin credentials.

HTTP Method

DELETE

Request URI

/api/v1/app/review/delete?cmPartitionId=cmPartitionId&id=id

Request Parameters

Parameter

Argument Type

Description

Example Value

cmPartitionId

Path

The Content space ID id is the ID of the desired space containing the review to delete.

 20000

id

Path

The id of the app review you want to delete.

name

Example Request

https://[Ivanti Neurons for MDM]/api/v1/app/review/delete?cmPartitionId=20003&id=49023

Example Response

{

    "errors": null,

    "result": 1

}

Get Application Configuration

Returns application configuration for a specific version of an application.

Authentication

This call requires tenant admin credentials.

Request format

GET /api/v1/app/version/{applicationVersionId}/config?type={configType}

Request Parameters

Parameter

Argument Type

Description

applicationVersionId

REQUIRED

Path

number

ID of the specific version of the application.

type

REQUIRED

Query

string

Configuration type. Must contain the value INSTALL.

Response

{ "errors":{ object(Error) }, "result":{ object(SearchResponse) } }

Field

Description

errors

object(Error)

Response errors.

result

object(SearchResponse)

Response results.

Object: SearchResponse

This object represents the result response.

 {
    "limit": number,
    "offset": number,
    "searchResults": [
	{
           object(ApplicationConfiguration)
      }
    ],
    "totalCount": number
}

Field

Description

limit

number

The maximum number of results that is being returned. Default is 50 and it can be controlled via query parameter. Refer to the API guide for details.

offset

number

Result offset.

searchResults[]

object(ApplicationConfiguration)

A list of application configurations.

totalCount

number

The total number of results.

Object: ApplicationConfiguration

This object represents the application configuration result.

{
    "applicationVersionId":number,
    "configVariables":[
      {
          string
      }
    ],
    "createdAt":number,
    "createdBy":number,
    "defaultConfig":boolean,
    "description":string,
    "id":number,
    "modifiedAt":number,
    "modifiedBy":number,
    "name":string,
    "priority":number,
    "settings":{
        Object(ApplicationConfigurationSettings)
    },
    "type":string,
    "uuid":string
    "userCounts":number,
    "groupCounts":number,
}

Field

Description

applicationVersionId

number

ID of the specific version of the application for which the configuration is applied.

configVariables[]

string

List of configuration substitution variables.

createdAt

number

Time of configuration creation in UNIX Epoch time. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970.

createdBy

number

ID of the user that created the application configuration.

defaultConfig

boolean

Flag that indicates if this is default system configuration.

description

string

Configuration description that can be used to specify the purpose of the configuration.

groupCounts

number

Number of user groups to which the configuration is distributed.

id

number

ID of the application configuration.

modifiedAt

number

Time of configuration modification in UNIX Epoch time. It is the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970.

modifiedBy

number

ID of the user that last modified the configuration.

name

string

Name of the application configuration.

priority

number

Priority of the configuration with 1 being the highest priority and the default configuration having the lowest priority.

settings

Object(ApplicationConfigurationSettings)

Additional configuration settings.

type

string

Configuration type. Types other than INSTALL are for internal use only.

userCounts

number

Number of individual users to which the configuration is distributed.

uuid

string

System assigned UUID of the configuration used internally.

Object: ApplicationConfigurationSettings

{
    "autoUpdate":boolean,
    "hideApp":boolean,
    "managed":boolean,
    "required":boolean,
    "silentInstall":boolean,
    "scheduleInstall": {
        Object(ApplicationConfigurationInstallScheduleSetting)}
    },
    "type":string,
}

Field

Description

Field

Description

autoUpdate

boolean

iOS Public app specific flag. App update is triggered when new version of the application is available and the flag is set to true.

priority

string

Use this parameter to define the order in which apps are received on the device when it is first registered (specifically, within the first twenty minutes after registration date and time), and required apps are pushed to install. You can prioritize downloading of specific apps before other apps, for example, prioritizing the download of Tunnel and Email apps before other non-critical apps. This parameter is applicable for public and private apps. Prerequisite apps are pushed before dependent apps.

Valid values are:

  • HIGH
  • MEDIUM
  • LOW

This parameter is supported on iOS (except AppStation for iOS), Android (except Android for Enterprise), and macOS (in-house PKG apps and Apple Apps and Books apps) devices.

This parameter is available for new registration devices. By default, all apps are set to medium priority. During this process, the user can elect to manually install any app in the catalog even though that app will compete for resources to install and may queue before high priority apps.

hideApp

boolean

Flag indicating if the application is shown in the user app catalog (Apps@Work).

managed

boolean

Flag indicating if previously installed application should be converted to managed.

required

REQUIRED

boolean

Flag indicating if the application is required. Must set to true or false when using this object in input parameters. Cannot be null.

silentInstall

boolean

Android specific flag. If set to true, the application is silently installed on Samsung KNOX and Zebra devices.

scheduleInstall

Object(ApplicationConfigurationInstallScheduleSetting}

Windows specific application installation schedule.

type

REQUIRED

string

Type of the application configuration. Types other than INSTALL are for internal use only. Required and must be set to INSTALL when using this object in input parameters.

Object: ApplicationConfigurationInstallScheduleSetting

Windows specific application installation schedule.

{
    "enabled":boolean,
    "startTime":string,
    "endTime":string,
}

Field

Description

enabled

boolean

Flag indicating if the application is installed on a schedule.

startTime

string

Time field indicating the start time of the window within which the application will be installed. The supported format is 24 hour time. For example 02:00, meaning 2 am.

endTime

string

Time field indicating the end time of the window within which the application will be installed. The supported format is 24 hour time. For example 14:00, meaning 2 pm.

 

Example Request

curl -X GET -u <username>:<passwpord> -kv 'https://[Ivanti Neurons for MDM]/api/v1/app/version/17000/config?type=INSTALL'

Example Response

{ "errors": null, "result": { "limit": 50, "offset": 0, "searchResults": [ { "applicationVersionId": 17000, "configVariables": null, "createdAt": 1547685772847, "createdBy": null, "defaultConfig": false, "description": null, "groupCounts": 2, "id": 47, "modifiedAt": 1547766408140, "modifiedBy": null, "name": "Test Config", "priority": 1, "settings": { "autoUpdate": false, "hideApp": false, "managed": false, "required": true, "silentInstall": false, "type": "INSTALL" }, "type": "INSTALL", "userCounts": 3, "uuid": "6cae754b-baad-41eb-9b36-5884a8c106f0" }, { "applicationVersionId": 17000, "configVariables": null, "createdAt": 1544817252706, "createdBy": null, "defaultConfig": true, "description": "Allows specifying install settings for an application.", "groupCounts": 1, "id": 1, "modifiedAt": 1547691994540, "modifiedBy": null, "name": "Install Application configuration settings.", "priority": 99999, "settings": { "autoUpdate": true, "hideApp": true, "managed": false, "required": true, "silentInstall": false, "type": "INSTALL" }, "type": "INSTALL", "userCounts": 0, "uuid": "cdee085b-f8ee-4a1c-8840-e98a67e14c65" } ], "totalCount": 2 } }

Create Application Configuration

Creates application configuration for a specific version of an application.

Authentication

This call requires tenant admin credentials.

Request format

POST /api/v1/app/version/{applicationVersionId}/config

Request Parameters

Parameter

Argument Type

Description

applicationVersionId

REQUIRED

Path

number

ID of the specific version of the application.

Request Body Parameters

{ "name": string, "type": string, "settings":{ Object(ApplicationConfigurationSettings) }, "groupIds": [ number ], "accountIds": [ number ] }

name

REQUIRED

Request body

string

Name of the application configuration. The name has to be unique for that type of application configuration.

type

REQUIRED

Request body

string

Must contain the value INSTALL

settings

REQUIRED

Request body

Object(ApplicationConfigurationSetting)

Additional configuration settings.

groupIds

Request body

number

List of group ids of the groups to which the configuration will be applied. The configuration will not be applied to any groups when the group id list is empty or not set.

The configuration will be applied to all users that have the app installed when the group is set to the “All Users” group.

accountIds

Request body

number

List of specific user ids of the users to which the configuration will be applied. The configuration will not be applied to any specific users when the user id list is empty or not set.

Response

{  
    "errors":{
        object(Error)
    },
    "result" : number
}

Field

Description

errors

object(Error)

Response errors.

result

number

ID of the application configuration that was created.

Example Request

            

curl --location --request POST 'https://[Ivanti Neurons for MDM]/api/v1/app/version/121646/config' \ --header 'Accept: application/json, text/plain, */*' \ --header 'Content-Type: application/json;charset=UTF-8' \ --header 'Authorization: Basic <token>' \ --data-raw '{ "type": "INSTALL", "settings": { "required": true, "hideApp": false, "silentInstall": false, "managed": false, "autoUpdate": true, "type": "INSTALL", "priority": "LOW", "scheduleInstall": null }, "distributeOption": "CUSTOM", "name": "ForDocs", "groupIds": [ 50918 ], "accountIds": [ 486275 ] }'

Example Response

{ "errors": null, "result": 276182 }

Update Application Configuration

Updates a specific application configuration for a specific version of an application.

Authentication

This call requires tenant admin credentials.

Request format

PUT /api/v1/app/version/{applicationVersionId}/config/{configId}

Request Parameters

Parameter

Argument Type

Description

Example Value

cmPartitionId

Path

The Content space ID id is the ID of the desired space containing the review to delete.

 20000

id

Path

The id of the app review you want to delete.

name

Response

{ "errors":{ object(Error) }, "result" : number }

Field

Description

errors

object(Error)

Response errors.

result

number

ID of the application configuration that was updated.

Example Request

            

curl --location --request PUT 'https://[Ivanti Neurons for MDM]/api/v1/app/version/121646/config/276183' \ --header 'Accept: application/json, text/plain, */*' \ --header 'Content-Type: application/json;charset=UTF-8' \ --header 'Authorization: Basic <token>' \ --data-raw '{ "id": 276183, "applicationVersionId": 121646, "name": "ForDocs", "description": null, "priority": 1, "settings": { "type": "INSTALL", "managed": false, "required": true, "hideApp": false, "silentInstall": false, "autoUpdate": true, "priority": "LOW", "scheduleInstall": null }, "type": "INSTALL" }'

Example Response

            

{ "errors": null, "result": 276183 }

Get all custom attributes for an application version

This call returns a list of all custom attributes for application version.

Authentication

Use credentials for a user with app.read permissions.

HTTP Method

GET

Request URI

/api/v1/app/version/{applicationVersionId}/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

applicationVersionId

Path

Version of the app for which to fetch the attributes.

165764

Assign custom attributes to an application version

This call assigns custom attributes for an application version.

Authentication

Use credentials for a user with app.update permissions.

HTTP Methods

POST/PUT

Request URI

/api/v1/app/version/{applicationVersionId}/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

applicationVersionId

Path

Version of the app to which to apply the attributes.

165764

attrs

Request body

The custom attributes to apply.

-d '{
    "attrs": {
        "key": [
            "test"
        ]
    }
}'

Update custom attributes for an application version

This call updates custom attributes for an application version.

Authentication

Use credentials for a user with app.update permissions.

HTTP Method

PATCH

Request URI

/api/v1/app/version/{applicationVersionId}/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

applicationVersionId

Path

Version of the app to which to apply the attributes.

165764

forceOverwrite

Request body

Setting to true means that the call would overwrite the current attribute values. false adds a new attribute.

-d '{
    "forceOverwrite": false, 
    "attrs": {
        "key": [
            "value2"
        ]
    }
}'

attrs

Request body

The custom attributes to update. You must specify the existing attribute names for the application version or else the system would remove them.

Delete custom attributes for an application version

This call deletes custom attributes.

Authentication

Use credentials for a user with app.update permissions.

HTTP Method

DELETE

Request URI

/api/v1/app/version/{applicationVersionId}/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

applicationVersionId

Path

Version of the app to which to apply the attributes.

165764

attrs

Request body

Specify the attributes to remove.

-d '{
    "attrs": {
        "key": [
            "test"
        ]
    }
}'

Update custom attributes for applications

This call updates custom attributes of specified applications.

Authentication

Use credentials for a user with app.update permissions.

HTTP Method

PATCH

Request URI

/api/v1/app/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

ids

Request body

IDs of apps for which to update custom attributes.

-d '{
    "ids": [
        16005, 
        16006, 
        16007
    ], 
    "attrs": {
        "attrs": {
            "key12": [
                "value101", 
                "value102"
            ]
        }
    }, 
    "forceOverwrite": true
}'

attrs

Request body

The custom attributes to update.

forceOverwrite

Request body

Setting to true means that the call would overwrite the current attribute values. false adds a new attribute..

Update custom attributes for an application

This call updates custom attributes for an application.

Authentication

Use credentials for a user with app.update permissions.

HTTP Method

PATCH

Request URI

/api/v1/app/{appId}/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

appId

Path

app for which to update the attributes.

165764

attrs

Request body

The custom attributes to update.

-d '{
    "attrs": {
        "key12": [
            "value101", 
            "value102"
        ]
    }, 
    "forceOverwrite": true
}'

forceOverwrite

Request body

Setting to true means that the call would overwrite the current attribute values. false adds a new attribute..

Delete custom attributes for an application

This call deletes custom attributes for an application.

Authentication

Use credentials for a user with app.update permissions.

HTTP Method

DELETE

Request URI

/api/v1/app/{appId}/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

appId

Path

app for which to delete the attributes.

165764

attrs

Request body

Specify the attribute names to delete.

-d '{
    "attrs": {
        "key12": [
            "value101", 
            "value102"
        ]
    }
}'

Delete custom attributes for applications

The following query is used to delete custom attributes:

Authentication

Use credentials for a user with app.update permissions.

HTTP Method

DELETE

Request URI

/api/v1/app/customattributes

Request Parameters

Parameter

Argument Type

Description

Example Value

ids

Request body

IDs of apps for which to delete custom attributes.

-d '{
    "ids": [
        16005, 
        16006, 
        16007
    ], 
    "attrKeys": {
        "key12": [
            "value101", 
            "value102"
        ]
    }
}'

attrs

Request body

The custom attributes to delete.